<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 原数组 resut.data.data ...
      const list = [
        { province: "湖南省" },
        { province: "云南省" },
        { province: "西藏自治区" },
        { province: "湖南省" },
        { province: "甘肃省" },
        { province: "甘肃省" },
        { province: "内蒙古自治区" },
        { province: "山东省" },
        { province: "江苏省" },
        { province: "云南省" },
        { province: "广西壮族自治区" },
        { province: "广西壮族自治区" },
        { province: "广东省" },
        { province: "广西壮族自治区" },
        { province: "河北省" },
        { province: "黑龙江省" },
        { province: "新疆维吾尔自治区" },
        { province: "西藏自治区" },
        { province: "湖南省" },
        { province: "新疆维吾尔自治区" },
        { province: "广西壮族自治区" },
        { province: "内蒙古自治区" },
        { province: "河南省" },
        { province: "西藏自治区" },
        { province: "云南省" },
        { province: "甘肃省" },
        { province: "黑龙江省" },
        { province: "山东省" },
        { province: "新疆维吾尔自治区" },
        { province: "西藏自治区" },
        { province: "河南省" },
        { province: "黑龙江省" },
        { province: "广西壮族自治区" },
        { province: "山东省" },
        { province: "广东省" },
        { province: "广东省" },
        { province: "江苏省" },
        { province: "广西壮族自治区" },
        { province: "湖南省" },
        { province: "江苏省" },
        { province: "山东省" },
        { province: "广西壮族自治区" },
        { province: "黑龙江省" },
        { province: "湖南省" },
        { province: "黑龙江省" },
        { province: "广东省" },
        { province: "广东省" },
        { province: "西藏自治区" },
        { province: "云南省" },
        { province: "西藏自治区" },
        { province: "湖南省" },
        { province: "山东省" },
        { province: "内蒙古自治区" },
        { province: "内蒙古自治区" },
        { province: "湖南省" },
        { province: "广西壮族自治区" },
      ];

      // 处理 =====>
      // 声明一个新数组 存放 数据
      const newList = [];

      // 对旧数组做遍历
      for (let index = 0; index < list.length; index++) {
        //  给newList 添加数据
        // 1 如果当前的省份 你已经添加进newLit， 执行 value++
        // 2 如果当前的省份，还没有添加进newList，执行给newList添加新数据 {value:1,name:"湖南"}

        // 旧数组中被遍历的元素
        const ele = list[index];

        // 找不到返回-1  item是每一个新的数组，ele是每一个旧的数组
        const i = newList.findIndex((item) => item.name === ele.province);
        if (i === -1) {
          // 旧数组 你当前遍历的元素 我新数组还没有添加过
          newList.push({ value: 1, name: ele.province });
          // 新数组中 已经存在过 当前要遍历的旧数组的元素 执行value++
        } else {
          newList[i].value++;
        }
      }

      console.log(newList);
      /* 
      
      小结：
      做一个数据筛选，筛选数组中有多少个重复的数据，把按照顺序罗列出来
      1、申明一个空的新的数组来接受筛选出来的旧的数据
      2、遍历旧的数据
      2.1 得到旧数组被遍历的元素
      2.2用findIndex来查找新的数组有没有旧数组的内容，如果没有旧添加按照规定格式添加到新数组里面去。
      如果有了这个数组就数组次数加一

      */
    </script>
  </body>
</html>
